
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EBAS_SP_OPRET_STUDERENDE]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[EBAS_SP_OPRET_STUDERENDE]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE PROCEDURE [DBO].[EBAS_SP_OPRET_STUDERENDE] 
	@session varchar(255),
	@init varchar(255),
	@cpr varchar(50),
	@fornavn varchar(255),
	@efternavn varchar(255),
	@titel varchar(255) = '',
	@skoleId varchar(255),
	@skoleDato datetime = NULL,
	@okDato datetime = NULL,
	@bem varchar(255) = '',
	@uddan varchar(255) = '',
	@status varchar(255),
	@ident varchar(255),
	@bruger varchar(255) = NULL
WITH ENCRYPTION	
AS

	DECLARE 
		@statusGuid uniqueidentifier,
		@identGuid uniqueidentifier,
		@studentGuid uniqueidentifier,
		@brugerGuid uniqueidentifier,
		@gruppeGuid uniqueidentifier,
		@rettighed int

	SET NOCOUNT ON

	CREATE TABLE #temp ( rett int )
	INSERT INTO #temp (rett)
	EXEC EBAS.DBO.EBAS_SP_SIKKERHED_VERIFICER_SESSION @session	

	SET @rettighed = (SELECT IsNull(max(rett),0) FROM #temp)

	IF 8 <= @rettighed 
	BEGIN
		SET @studentGuid = (SELECT GUID FROM EBAS_STUDERENDE WHERE CPR_NR = @cpr)
	
		SET @statusGuid = (SELECT GUID FROM EBAS_STATUS WHERE STATUS = @status)
		SET @identGuid = (SELECT GUID FROM EBAS_IDENTIFIKATION WHERE IDENTIFIKATION = @ident)

		IF @bruger IS NOT NULL AND @bruger <> ''
		BEGIN
			SET @brugerGuid = (SELECT GUID FROM EBAS_SIKKERHED_BRUGER WHERE BRUGERNAVN = @bruger)
			IF @brugerGuid IS NOT NULL
				SET @brugerGuid = NULL
			ELSE
			BEGIN
				SET @brugerGuid = NEWID()

				INSERT INTO EBAS_SIKKERHED_BRUGER
					SELECT 	@brugerGuid, @bruger, @fornavn + ' ' + 
						@efternavn, /* adgangkode */ NULL, DATEADD(day, 30, GetDate()), 
						0, '', 0, NULL, NULL

				SET @gruppeGuid	= (SELECT GUID FROM EBAS_SIKKERHED_GRUPPE WHERE NAVN = 'Studerende')
				IF @gruppeGuid IS NOT NULL
					INSERT INTO EBAS_SIKKERHED_RELATION
						SELECT NEWID(), @brugerGuid, @gruppeGuid, getDate()								
			END
		END		

		IF @studentGuid IS NULL	
		BEGIN
			SET @studentGuid = NEWID()
			INSERT INTO EBAS_STUDERENDE 
				SELECT 	@studentGuid, @init, @cpr, @fornavn, @efternavn, @titel, @skoleId, @skoleDato, 
					@okDato, @bem, @uddan, @statusGuid, @identGuid, @brugerGuid, 0
		END
		ELSE
			UPDATE EBAS_STUDERENDE 
				SET 	INIT = @init, CPR_NR = @cpr, FORNAVN = @fornavn, EFTERNAVN = @efternavn, 
					TITEL = @titel, SKOLE_ID = @skoleId, SKOLE_DATO = @skoleDato, 
					OK_DATO = @okDato, BEMAERKNING = @bem, UDDANNELSE = @uddan, STATUS_GUID = @statusGuid, 
					IDENTIFIKATION_GUID = @identGuid, SIKKERHED_BRUGER_GUID = @brugerGuid
			WHERE GUID = @studentGuid
		
	END		
			
	IF @brugerGuid IS NOT NULL
		SELECT 	S.GUID, S.INIT, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
			S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
			ST.STATUS, IDEN.IDENTIFIKATION, B.BRUGERNAVN
		FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN, 
			EBAS_SIKKERHED_BRUGER B
		WHERE	S.GUID = @studentGuid
		AND	S.STATUS_GUID = ST.GUID
		AND	S.IDENTIFIKATION_GUID = IDEN.GUID
		AND	S.SIKKERHED_BRUGER_GUID = B.GUID
	ELSE
		SELECT 	S.GUID, S.INIT, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
			S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
			ST.STATUS, IDEN.IDENTIFIKATION, '' AS BRUGERNAVN
		FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN
		WHERE	S.GUID = @studentGuid
		AND	S.STATUS_GUID = ST.GUID
		AND	S.IDENTIFIKATION_GUID = IDEN.GUID
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
